home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / allmac21.arc / REFORM15.ARC / REFORM15.QM < prev   
Text File  |  1990-08-27  |  24KB  |  533 lines

  1. *     ┌───────────────────────────────────────────────────────────┐
  2. * ════╡ Macros to Reformat Blocks, Paragraphs and Documents, v1.5a╞════
  3. *     └───────────────────────────────────────────────────────────┘
  4. *                               REFORM15.QM
  5. *
  6. * REFORM15.ZIP are macros to reformat QEDIT blocks, paragraphs, and
  7. * documents. Asterisks are also added and deleted in front of lines,
  8. * blocks, and paragraphs for commenting.
  9. *
  10. *   KEY(1)                       DESCRIPTION
  11. *  Old New                    
  12. *  @1        Adds asterisk and space in front of marked block.
  13. *      @t    Adds asterisk and space in front of marked block (T Farley)
  14. *      @2    Deletes asterisk and space in front of marked block.
  15. *  @2  @3    Adds asterisk and space in front of marked PARAGRAPH block
  16. *  @6        Adds asterisk and one space in column 1
  17. *  @4        Deletes asterisk and one space in column 1
  18. *  @7        Deletes asterisk and ALL space at beginning of line
  19. *  @3  ^3    Formats a paragraph. (Macro has been around a long time)
  20. *  @5  ^5    Formats document with blank lines forming paragraphs
  21. *  @8  ^8    Formats QMAC txtfile block with asterisk in column 1
  22. *  @9  ^9    Formats Block. Must position cursor at beginning of block.
  23. *  @0  ^0    Formats Paragraph Only. Keeps in original indented position.
  24. *
  25. * (1) - Old v1.4, New v1.5
  26. *-----------------
  27. * If column width of the unformatted paragraphs and blocks are greater
  28. * than 80 columns, there must be enough blank lines for ^8, 9 & 0 to
  29. * paste the reformatted text back and not overlap unformatted areas. In
  30. * otherwords, BE CAREFUL!
  31. *
  32. * For faster macro execution, replace "C:" with your ram drive.
  33. *
  34. * Insert and AutoIndent should be ON.
  35. *
  36. *
  37. * VERSION HISTORY:
  38. *
  39. *       1.1 - added Alt_6,7 & 8 to format QMAC txtfiles
  40. *       1.1a- modified Alt_8,9 & 10 to get off screen-text in block
  41. *       1.2 - added Alt_5 to format entire document QUICKLY keeping
  42. *                         indented paragraph positions in place
  43. *                   Alt_4 to format entire document keeping indented
  44. *                         paragraph positions in place
  45. *                   Alt_3 to format paragraph only
  46. *           - modified other macros to handle line widths to 512
  47. *       1.2a- modified this documentation
  48. *       1.2b- Added @2 to make single column txtfile from
  49. *             QMAC txtfile, v1.2b
  50. *       1.2c- changed 160 in @9 to 512
  51. *       1.2d- @2 removed, now in COLUMN10.ZIP
  52. *           - @4 removed
  53. *           - added killfile @0
  54. *           - changed macro comments
  55. *       1.3 - added Alt_1 & 2 to put asterisk and space in front
  56. *             of blocks and paragraphs
  57. *       1.4 - added Alt_4 to remove asterisk and space in column 1
  58. *       1.5 - added Alt_t (from Tim Farley) to do the same as Alt_1
  59. *           - changed key assignements
  60. *           - added Alt_2 to remove asterisks in front of blocks
  61. *           - shortened Alt_1 to 32 bytes
  62. *       1.5a- modified Alt_1 to handle blocks with blank lines
  63. *           - changed "60" in Ctl_0 to "69"
  64. *           - Alt_t modified by Tim Farley to correctly handle column
  65. *             and single line blocks.
  66.  
  67. * ┌───────────────────────────────────────────────────────────────────┐
  68. * │@1 Place asterisk and space in column 1 in front of marked block   │
  69. * └───────────────────────────────────────────────────────────────────┘
  70. *
  71. * To run, first mark and close a block with markblockbegin and
  72. * markblockend, markline, or dropanchor. Blocks may contain blank
  73. * lines. No column blocks, please. The cursor may then be positioned
  74. * anywhere to run. Press Alt and 1 at the same time. An asterisk and a
  75. * space are placed in column 1 in front of the marked block only.
  76. * Marked block does NOT have to be a paragraph as in Alt_2. If a block
  77. * is not marked, the cursor line is treated as a block, and an asterisk
  78. * and space are placed in column 1 the same as done with Alt_6.
  79. *
  80.  
  81. @1 macrobegin
  82.         cut                             * cut block to scrap
  83.         editfile "$" return             * load $ (temp file)
  84.         quit                            * quit if in ring
  85.         editfile return                 * reload
  86.         paste                           * paste block to $
  87.  NEXT:                                  * come here until done
  88.         begline                         * stay in column 1
  89.         "* "                            * put asterisk space in col 1
  90.         cursordown                      * move down to next line
  91.  jtrue  NEXT:                           * if not done go to NEXT
  92.         begfile                         * go to begfile $
  93.         markblockbegin                  * get line 1 col 1 in block
  94.         copy                            * get block w/asterisks to scrap
  95.         quit                            * quit $
  96.         paste                           * put block back with asterisks
  97.  END:
  98. *
  99. * 37 bytes Mon  08-20-1990  21:02:06
  100. * 32 bytes Wed  08-22-1990  00:00:48 removed last line and C:
  101. * 27 bytes Fri  08-24-1990  13:01:12 modified to handle blocks with blank lines.
  102.  
  103.  
  104.  
  105.  
  106.  
  107. * Here's an alternate version of Alt_1 from Tim Farley of SemWare that
  108. * seems to do the same thing. It's faster, runs smoother, but is a
  109. * little larger if that's important. I feel Tim came up with a better
  110. * way to do the same thing by using shiftright and fillblock. Use
  111. * whichever you prefer that get's the job done for you.
  112. *
  113. * PN>I tried out two dBase commenting macros (from Tom Hogshead) last night.
  114. * PN>Neither of them does quite what I'm trying to achieve.
  115. * PN>
  116. * PN>What I need to do is comment out (i.e., put an asterisk in front of)
  117. * PN>each line in a blocked area.
  118. *
  119. * Here's an alternate version that uses the column marking ability,
  120. * ShiftRight, and FillBlock to do the job.
  121.  
  122. * TH>When marking a block with markblockbeg and markblockend, it adds one
  123. * TH>extra line to the bottom of the block. Adding cursorup in line #11
  124. * TH>seems to get things to comment out the block as originally marked.
  125. * TH>Line blocks work OK.
  126. *
  127. * Hmmmm....I'll try it out.
  128. *
  129. * Ooops!  I guess I broke part of it in my last minute tweaking.
  130. *
  131. * Here is a version that works right in *all* cases, including a
  132. * single line:
  133.  
  134. *
  135. * DBASE COMMENT OUT MACRO
  136. *
  137. * Mark a block (doesn't matter if it is a char, line or column block).
  138. * Hit this key, and all the lines in the block will be commented out
  139. * with a "* " at the beginning of the line.
  140. *
  141. * After it is done, the block will be left marked as a line block,
  142. * and the cursor will be at the top of the block.
  143. *
  144. * Correctly detects case where you are in the middle of marking,
  145. * and also the case where no block is marked.
  146. *
  147. @t   MacroBegin
  148.      GotoBlockBeg              * Has block been closed?
  149.      GotoBlockEnd JTrue doit:  * if cursor moved, go ahead
  150.      MarkLine                  * no movement?  close block
  151.      GotoBlockEnd JFalse end:  * no movement?  no block!  quit.
  152.    doit:
  153.      EndLine BegLine           * <----NEW  for single line case
  154.      GotoBlockEnd              * Remember end of the block
  155.      GotoBlockBeg              * But go to beginning
  156.      MarkLine                  * Mark as line from here...
  157.      PrevPosition              * ...to the previous end of block.
  158.      MarkLine
  159.      BegLine                   * <----NEW  for column block case
  160.      ShiftRight ShiftRight     * Two characters over please
  161.      GotoBlockEnd              * Remember end of the block
  162.      GotoBlockBeg              * But go to beginning
  163.      MarkColumn                * Start marking a column
  164.      PrevPosition              * ...to end of previous block
  165.      BegLine                  * But only in column 1 of these lines
  166.      MarkColumn                * ...and finish marking.
  167.      FillBlock "*" Return      * Fill Column 1 with Stars!
  168.      GotoBlockEnd              * Remember end of the block
  169.      GotoBlockBeg              * But go to beginning
  170.      MarkLine
  171.      PrevPosition MarkLine     * Re-mark as a line block
  172.      GotoBlockBeg              * And leave us at the top.
  173.      Jump done:
  174.    end:
  175.      UnMarkBlock
  176.    done:
  177. *
  178. * 44 bytes Fri  08-24-1990  16:23:16 (line added TH )
  179.  
  180.  
  181. * Interestingly enough, since "*" is also a comment mark for QEdit
  182. * macros, you can use this to comment out lines in QEdit macros
  183. * too!
  184. *
  185. * There is one special case where this macro can do something odd,
  186. * and that is if you mark a single line as a block and comment it
  187. * out.  But since a single line can be commented out just by
  188. * hitting HOME and typing "*", I doubt that will be a problem.
  189. *
  190. * One nice side effect:  it leaves the lines marked as lines, so if
  191. * you want to *uncomment* them, just hit ShiftLeft twice.
  192. *
  193. * If you remove the comments and reformat, I think you can fit this
  194. * in QCONFIG.DAT.
  195. *
  196. * --Tim Farley
  197.  
  198.  
  199.  
  200. * ┌────────────────────────────────────────────────────────────────┐
  201. * │ @2    Deletes asterisk and space in front of marked block.     │
  202. * └────────────────────────────────────────────────────────────────┘
  203. @2 macrobegin
  204.         gotoblockbeg                    * block?
  205.  JFalse END:                            * no block!  end
  206.         shiftleft shiftleft             * delete asterisk and space
  207.         unmarkblock                     * unmarkblock
  208.  END:
  209. *
  210. * 11 bytes Wed  08-22-1990  10:29:17
  211.  
  212.  
  213.  
  214.  
  215.  
  216. * ┌─────────────────────────────────────────────────────────────────────┐
  217. * │@3 Places an asterisk and space in front of block that IS a paragraph│
  218. * │   and also in front of any paragraph that is NOT marked as a block  │
  219. * │   from the cursor to the end of the paragraph.                      │
  220. * └─────────────────────────────────────────────────────────────────────┘
  221. *
  222. * To run, first either mark a paragraph as a block with markblockbegin
  223. * and markblockend or position the cursor at the beginning of a
  224. * paragraph in column 1. After loading the macro, press Alt and 2 at
  225. * the same time. An asterisk and a space are placed in column 1 in
  226. * front of the block or the paragraph from the cursor to the end
  227. * of the paragraph. Remember a paragraph is defined as having a
  228. * blank line at the beginning and end.
  229. *
  230. @3 macrobegin
  231.         gotoblockbeg                    * go to block begin
  232.  NEXT:                                  *
  233.         endline begline                 * end if line blank
  234.  jfalse END:                            * if line blank, go to end
  235.         "* "                            * put asterisk space in col 1
  236.         cursordown                      * move down to next line
  237.  jump  NEXT:                            * cycle until done
  238.  END:                                   *
  239. *
  240. * 18 bytes Mon  08-20-1990  22:19:35
  241.  
  242.  
  243.  
  244. * ┌─────────────────────────────────────────────────────────┐
  245. * │@4 Deletes asterisk and SINGLE space at beginning of line│
  246. * └─────────────────────────────────────────────────────────┘
  247. * Use to remove asterisk and space inserted with Alt_6. Lines with
  248. * no asterisk are not changed.
  249. *
  250. @4 macrobegin
  251.  START:
  252.         unmarkblock                     * unmark any blocks
  253.         begline                         * go to begline
  254.         markcolumn                      * mark it
  255.         cursorright                     * go to column 2
  256.         find "*"  return                * find asterisk space
  257.         "BL" return                     * back in block only
  258.  jfalse NEXT:                           * if found
  259.         delch                           * delete asterisk
  260.         delch                           * delete space
  261.   NEXT:                                 * come here if no astk in col 1
  262.         cursordown                      * down to next line
  263.         begline                         * begline
  264.         unmarkblock                     * unmark
  265. *
  266. * 25 bytes Tue  08-21-1990  13:30:16
  267.  
  268.  
  269.  
  270.  
  271. * ┌────────────────────────────────────────────────────┐
  272. * │@6 Adds asterisk and one space at beginning of line │
  273. * └────────────────────────────────────────────────────┘
  274. * Useful in preparing txtfiles for QMAC. To run, just press Alt_6 and an
  275. * asterisk and blank space are inserted in column 1 and 2 in front of
  276. * any other text on the line. Use Alt_4 to remove asterisk and space
  277. * inserted with this macro.
  278. *
  279. @6  macrobegin
  280.         unmarkblock
  281.         begline
  282.         "* "
  283.         cursordown
  284.         begline
  285. *
  286. * 12 bytes Mon  07-30-1990  11:03:14
  287.  
  288.  
  289.  
  290.  
  291. * ┌─────────────────────────────────────────────────────────┐
  292. * │@7 Deletes asterisk and any space at beginning of line   │
  293. * └─────────────────────────────────────────────────────────┘
  294. * To run, press Alt_7, and the asterisk in column 1 on the cursorline
  295. * and all space up to the first word on the line is deleted. This
  296. * macros erase too much if there are two asterisks and no letters on
  297. * same line.
  298. *
  299. @7 macrobegin
  300.         unmarkblock                     * get ready
  301.         begline                         * go to begline
  302.         delch                           * delete first asterisk
  303.         endline begline                 * check if anything else on line
  304.  jfalse NEXT:                           * if line blank, go to next
  305.         markcolumn                      * otherwise, mark begline
  306.         wordright                       * go to first word on line
  307.         cursorleft                      * get cursor off word
  308.         deleteblock                     * delete all space to beginline
  309.   NEXT:                                 *
  310.         cursordown                      * cursordown and end
  311. *
  312. * 17 bytes Mon  07-30-1990  11:03:26
  313.  
  314.  
  315.  
  316.  
  317.  
  318. *
  319. * ┌───────────────────────────────────────────────────────────────────┐
  320. * │^3 Formats a paragraph. (Macro has been around a long time)        │
  321. * └───────────────────────────────────────────────────────────────────┘
  322. *
  323. 04 macrobegin
  324.         cursordown                      * move down one line
  325.         prevpara                        * get to beginning of paragraph
  326.         wrappara                        * reformat
  327.         nextpara                        * go to begin next paragraph
  328. *
  329. * 8 bytes Wed  08-01-1990  10:47:36
  330.  
  331.  
  332.  
  333.  
  334. * ┌───────────────────────────────────────────────────────────────────┐
  335. * │^5 Formats complete document with blank lines forming paragraphs   │
  336. * └───────────────────────────────────────────────────────────────────┘
  337. *
  338. 06 MacroBegin
  339.         unmarkblock                     * unmark
  340.         begfile                         * get to file begin
  341.         setrmargin "70" return          * set new right margin
  342.    FORMAT:                              *
  343.    jfalse FINISH:                       * no more para? go to FINISH
  344.         WrapPara                        * reformat
  345.         NextPara                        * get to begin next paragraph
  346.    jump FORMAT:                         *
  347.    FINISH:                              * no more paragraphs
  348.         setrmargin "80" return          * reset right margin
  349. *
  350. * 26 bytes Wed  08-01-1990  10:47:50
  351.  
  352.  
  353.  
  354. * ┌───────────────────────────────────────────────────────────────────┐
  355. * │^8 Formats QMAC txtfile block with asterisk in column 1            │
  356. * └───────────────────────────────────────────────────────────────────┘
  357. * To run, position the 'cursor line' on the first line of the block to
  358. * reformat. Press Ctl_9, then cursor down to bottom of block to
  359. * reformat. To reformat, press 'Enter' when the block is marked. This
  360. * macro differs from Ctl_9 in that the block does not include the
  361. * asterisk and blank space; in Ctl_9 the block starting postition is
  362. * selected by the starting position of the cursor line. This macro also
  363. * differs from Alt_0 which formats a paragraph from first blank line
  364. * which has no text or asterisk on line to last blank line.
  365. *
  366. *
  367. 09 macrobegin
  368.         unmarkblock                     * get ready
  369.         gotocolumn "512" return         * get all block to format
  370.         markcolumn                      * mark begin of block
  371.                 begline                 * start at line begin
  372.                 wordright               * get to first word on line
  373.         cursordown                      * position to cursor down
  374.         makectrofscreen                 * see better
  375.         pause                           * cursor to end, then 'Enter'
  376.         markcolumn                      * mark end of block
  377.         gotoblockbeg                    * Get to block begin
  378.  JFalse END:                            * No block? End
  379.         cut                             * Get into scrap
  380.         editfile "C:$" return           * load C:$ (temp file)
  381.         quit                            * quit if in ring
  382.         editfile return           * reload
  383.         paste                           * paste block to C:$
  384.         setrmargin "69" return **       * set rt margin to 69
  385.                                         ** change "69" as needed
  386.         wrappara                        * format block
  387.         setrmargin "80" return          * reset rt margin to 80
  388.         begfile                         * get to block begin
  389.         markcolumn                      * mark
  390.         endfile                         * mark endblock
  391.         gotocolumn "69" return **       * get all block marked
  392.                                         ** change "65" as needed
  393.         copy                            * get formatted block to scrap
  394.         quit                            * quit C:$
  395.         pasteover                       * Put back formatted, marked
  396.         makectrofscreen                 * better view
  397.  END:
  398. *
  399. * 67 bytes Mon  07-30-1990  11:03:37
  400. * 69 bytes Wed  07-30-1980  21:25:50 extra width in line 3
  401. * 63 bytes Wed  08-01-1990  10:15:09 shrunk
  402.  
  403.  
  404.  
  405.  
  406. * ┌───────────────────────────────────────────────────────────────────┐
  407. * │^9 Formats Block. Must position cursor at beginning of block       │
  408. * └───────────────────────────────────────────────────────────────────┘
  409. * To run, position the 'cursor' at the beginning of the block
  410. * to reformat. Press Ctl_9, then cursor down to bottom of
  411. * block to reformat. Press 'Enter' when the block is marked.
  412. * This macro differs from Ctl_8 in that the starting position
  413. * of the block to be reformatted is selected by the starting
  414. * position of the cursor; in Ctl_8 the block starting
  415. * postition is selected by the starting position of the cursor
  416. * line.
  417. *
  418. 10 macrobegin
  419.         unmarkblock                     * get ready
  420.         gotocolumn "512" return         * get all block to format
  421.         markcolumn                      * mark begin of block
  422.         prevposition                    *
  423.         begline                         *
  424.         prevposition                    *
  425.         makectrofscreen                 * see better
  426.         cursordown                      * position to cursor down
  427.         pause                           * cursor to end, then 'Enter'
  428.         markcolumn                      * mark end of block
  429.         gotoblockbeg                    * Get to block begin
  430.  JFalse END:                            * No block? End
  431.         cut                             * Get into scrap
  432.         editfile "C:$" return           * load C:$ (temp file)
  433.         quit                            * quit if in ring
  434.         editfile  return                * reload
  435.         paste                           * paste block to C:$
  436.         setrmargin "60" return **       * set rt margin to 60
  437.                                         ** change "60" as needed
  438.         wrappara                        * format block
  439.         setrmargin "80" return          * reset rt margin to 80
  440.         begfile                         * get to block begin
  441.         markcolumn                      * mark
  442.         endfile                         * mark endblock
  443.         gotocolumn "60" return **       * get all block marked
  444.                                         ** change "60" as needed
  445.         copy                            * get formatted block to scrap
  446.         quit                            * quit C:$
  447.         pasteover                       * Put back formatted, marked
  448.         makectrofscreen                 * better view
  449.  END:
  450. *
  451. * 65 bytes Mon  07-30-1990  11:03:49
  452. * 70 bytes Wed  07-30-1980  21:40:52 extra width in line 3
  453. * 64 bytes Wed  08-01-1990  10:15:29 removed extra C:$
  454.  
  455. *        This is a test block. To format, place the "cursor" on "t" in
  456. *               in "this" on line 1. Then press Ctl_9 and cursor down to
  457. *               block end. When the block has been marked press
  458. *               'Enter'. 
  459. *               Asterisks need not be removed.
  460.  
  461.  
  462.  
  463.  
  464. * ┌───────────────────────────────────────────────────────────────────┐
  465. * │^0 Formats Paragraph Only. Keeps in original indented position.    │
  466. * └───────────────────────────────────────────────────────────────────┘
  467. * To run, place cursor line anywhere in a paragragh, and press Ctl_0.
  468. * This macro yields the same formatted paragraph as does Ctl_3 if the
  469. * right margin is set to 60 in the QEdit menu or in QCONFIG.DAT, except
  470. * that the paragraph beginning is moved to column 1. This macro is the
  471. * starting point for putting together macros Ctl_8 and 9. If there are
  472. * asterisks in column 1 they are also formatted as part of the
  473. * paragraph.
  474. *
  475. 11 macrobegin
  476.         unmarkblock                     * get ready
  477.         cursordown                      * get into paragraph
  478.         prevpara                        * get to paragraph begin
  479.         markcolumn                      * mark column
  480.         endpara                         * get to paragraph end
  481.         gotocolumn "512" return         * get all paragraph in block
  482.         markcolumn                      * mark paragraph
  483.         gotoblockbeg                    * Get to paragraph begin
  484.  JFalse END:                            * No block? End
  485.         cut                             * Get into scrap
  486.         editfile "C:$" return           * load C:$ (temp file)
  487.         quit                            * quit if in ring
  488.         editfile return                 * load new
  489.         paste                           * paste block to C:$
  490.         setrmargin "69" return **       * set rt margin to 69
  491.                                         ** change "69" as needed
  492.         wrappara                        * format block
  493.         setrmargin "80" return          * set rt margin to 80
  494.         begfile                         * get to block begin
  495.         markcolumn                      * mark
  496.         endfile                         * mark end block
  497.         gotocolumn "69" return **       * get all block marked
  498.                                         ** change "69" as needed
  499.         copy                            * get formatted block to scrap
  500.         killfile                        * killfile
  501.         quit                            * quit C:$
  502.         paste                           * Put back formatted, marked
  503. *         pasteover                       * Put back formatted, marked
  504.         makectrofscreen                 * better view
  505.  END:
  506. *
  507. * 61 bytes Wed  08-01-1990  10:15:38 removed extra C:$
  508. * 62 bytes Sat  08-04-1990  15:32:43 added killfile
  509. * 62 bytes Fri  08-24-1990  14:58:38 changed pasteover to paste
  510.  
  511.  
  512. *****************************TEST PARAGRAPH************************************
  513.  
  514.        This is a test paragraph.
  515.                 Place the cursor line anywhere in this paragraph to run.
  516.                 Press Ctl and 0 at the same time.
  517.                 Be sure AutoIndent is ON. (Long line for test )==>>>>>>>>>>>>>>>***************************************** ***************************************** ***************************************** ***************************************** ***************************************** ***************************************** ***************************************** ***************************************** *****************************************
  518.                 
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529. ******************************TEST PARAGRAPH***********************************
  530.  
  531. *..Tom Hogshead  Fri  08-24-1990  13:57:40
  532.